{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 1. 数据的基本统计描述-集中趋势"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "from sklearn.datasets import load_iris"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "iris_data = load_iris()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[5.1, 3.5, 1.4, 0.2],\n",
       "       [4.9, 3. , 1.4, 0.2],\n",
       "       [4.7, 3.2, 1.3, 0.2],\n",
       "       [4.6, 3.1, 1.5, 0.2],\n",
       "       [5. , 3.6, 1.4, 0.2],\n",
       "       [5.4, 3.9, 1.7, 0.4],\n",
       "       [4.6, 3.4, 1.4, 0.3],\n",
       "       [5. , 3.4, 1.5, 0.2],\n",
       "       [4.4, 2.9, 1.4, 0.2],\n",
       "       [4.9, 3.1, 1.5, 0.1],\n",
       "       [5.4, 3.7, 1.5, 0.2],\n",
       "       [4.8, 3.4, 1.6, 0.2],\n",
       "       [4.8, 3. , 1.4, 0.1],\n",
       "       [4.3, 3. , 1.1, 0.1],\n",
       "       [5.8, 4. , 1.2, 0.2],\n",
       "       [5.7, 4.4, 1.5, 0.4],\n",
       "       [5.4, 3.9, 1.3, 0.4],\n",
       "       [5.1, 3.5, 1.4, 0.3],\n",
       "       [5.7, 3.8, 1.7, 0.3],\n",
       "       [5.1, 3.8, 1.5, 0.3],\n",
       "       [5.4, 3.4, 1.7, 0.2],\n",
       "       [5.1, 3.7, 1.5, 0.4],\n",
       "       [4.6, 3.6, 1. , 0.2],\n",
       "       [5.1, 3.3, 1.7, 0.5],\n",
       "       [4.8, 3.4, 1.9, 0.2],\n",
       "       [5. , 3. , 1.6, 0.2],\n",
       "       [5. , 3.4, 1.6, 0.4],\n",
       "       [5.2, 3.5, 1.5, 0.2],\n",
       "       [5.2, 3.4, 1.4, 0.2],\n",
       "       [4.7, 3.2, 1.6, 0.2],\n",
       "       [4.8, 3.1, 1.6, 0.2],\n",
       "       [5.4, 3.4, 1.5, 0.4],\n",
       "       [5.2, 4.1, 1.5, 0.1],\n",
       "       [5.5, 4.2, 1.4, 0.2],\n",
       "       [4.9, 3.1, 1.5, 0.1],\n",
       "       [5. , 3.2, 1.2, 0.2],\n",
       "       [5.5, 3.5, 1.3, 0.2],\n",
       "       [4.9, 3.1, 1.5, 0.1],\n",
       "       [4.4, 3. , 1.3, 0.2],\n",
       "       [5.1, 3.4, 1.5, 0.2],\n",
       "       [5. , 3.5, 1.3, 0.3],\n",
       "       [4.5, 2.3, 1.3, 0.3],\n",
       "       [4.4, 3.2, 1.3, 0.2],\n",
       "       [5. , 3.5, 1.6, 0.6],\n",
       "       [5.1, 3.8, 1.9, 0.4],\n",
       "       [4.8, 3. , 1.4, 0.3],\n",
       "       [5.1, 3.8, 1.6, 0.2],\n",
       "       [4.6, 3.2, 1.4, 0.2],\n",
       "       [5.3, 3.7, 1.5, 0.2],\n",
       "       [5. , 3.3, 1.4, 0.2],\n",
       "       [7. , 3.2, 4.7, 1.4],\n",
       "       [6.4, 3.2, 4.5, 1.5],\n",
       "       [6.9, 3.1, 4.9, 1.5],\n",
       "       [5.5, 2.3, 4. , 1.3],\n",
       "       [6.5, 2.8, 4.6, 1.5],\n",
       "       [5.7, 2.8, 4.5, 1.3],\n",
       "       [6.3, 3.3, 4.7, 1.6],\n",
       "       [4.9, 2.4, 3.3, 1. ],\n",
       "       [6.6, 2.9, 4.6, 1.3],\n",
       "       [5.2, 2.7, 3.9, 1.4],\n",
       "       [5. , 2. , 3.5, 1. ],\n",
       "       [5.9, 3. , 4.2, 1.5],\n",
       "       [6. , 2.2, 4. , 1. ],\n",
       "       [6.1, 2.9, 4.7, 1.4],\n",
       "       [5.6, 2.9, 3.6, 1.3],\n",
       "       [6.7, 3.1, 4.4, 1.4],\n",
       "       [5.6, 3. , 4.5, 1.5],\n",
       "       [5.8, 2.7, 4.1, 1. ],\n",
       "       [6.2, 2.2, 4.5, 1.5],\n",
       "       [5.6, 2.5, 3.9, 1.1],\n",
       "       [5.9, 3.2, 4.8, 1.8],\n",
       "       [6.1, 2.8, 4. , 1.3],\n",
       "       [6.3, 2.5, 4.9, 1.5],\n",
       "       [6.1, 2.8, 4.7, 1.2],\n",
       "       [6.4, 2.9, 4.3, 1.3],\n",
       "       [6.6, 3. , 4.4, 1.4],\n",
       "       [6.8, 2.8, 4.8, 1.4],\n",
       "       [6.7, 3. , 5. , 1.7],\n",
       "       [6. , 2.9, 4.5, 1.5],\n",
       "       [5.7, 2.6, 3.5, 1. ],\n",
       "       [5.5, 2.4, 3.8, 1.1],\n",
       "       [5.5, 2.4, 3.7, 1. ],\n",
       "       [5.8, 2.7, 3.9, 1.2],\n",
       "       [6. , 2.7, 5.1, 1.6],\n",
       "       [5.4, 3. , 4.5, 1.5],\n",
       "       [6. , 3.4, 4.5, 1.6],\n",
       "       [6.7, 3.1, 4.7, 1.5],\n",
       "       [6.3, 2.3, 4.4, 1.3],\n",
       "       [5.6, 3. , 4.1, 1.3],\n",
       "       [5.5, 2.5, 4. , 1.3],\n",
       "       [5.5, 2.6, 4.4, 1.2],\n",
       "       [6.1, 3. , 4.6, 1.4],\n",
       "       [5.8, 2.6, 4. , 1.2],\n",
       "       [5. , 2.3, 3.3, 1. ],\n",
       "       [5.6, 2.7, 4.2, 1.3],\n",
       "       [5.7, 3. , 4.2, 1.2],\n",
       "       [5.7, 2.9, 4.2, 1.3],\n",
       "       [6.2, 2.9, 4.3, 1.3],\n",
       "       [5.1, 2.5, 3. , 1.1],\n",
       "       [5.7, 2.8, 4.1, 1.3],\n",
       "       [6.3, 3.3, 6. , 2.5],\n",
       "       [5.8, 2.7, 5.1, 1.9],\n",
       "       [7.1, 3. , 5.9, 2.1],\n",
       "       [6.3, 2.9, 5.6, 1.8],\n",
       "       [6.5, 3. , 5.8, 2.2],\n",
       "       [7.6, 3. , 6.6, 2.1],\n",
       "       [4.9, 2.5, 4.5, 1.7],\n",
       "       [7.3, 2.9, 6.3, 1.8],\n",
       "       [6.7, 2.5, 5.8, 1.8],\n",
       "       [7.2, 3.6, 6.1, 2.5],\n",
       "       [6.5, 3.2, 5.1, 2. ],\n",
       "       [6.4, 2.7, 5.3, 1.9],\n",
       "       [6.8, 3. , 5.5, 2.1],\n",
       "       [5.7, 2.5, 5. , 2. ],\n",
       "       [5.8, 2.8, 5.1, 2.4],\n",
       "       [6.4, 3.2, 5.3, 2.3],\n",
       "       [6.5, 3. , 5.5, 1.8],\n",
       "       [7.7, 3.8, 6.7, 2.2],\n",
       "       [7.7, 2.6, 6.9, 2.3],\n",
       "       [6. , 2.2, 5. , 1.5],\n",
       "       [6.9, 3.2, 5.7, 2.3],\n",
       "       [5.6, 2.8, 4.9, 2. ],\n",
       "       [7.7, 2.8, 6.7, 2. ],\n",
       "       [6.3, 2.7, 4.9, 1.8],\n",
       "       [6.7, 3.3, 5.7, 2.1],\n",
       "       [7.2, 3.2, 6. , 1.8],\n",
       "       [6.2, 2.8, 4.8, 1.8],\n",
       "       [6.1, 3. , 4.9, 1.8],\n",
       "       [6.4, 2.8, 5.6, 2.1],\n",
       "       [7.2, 3. , 5.8, 1.6],\n",
       "       [7.4, 2.8, 6.1, 1.9],\n",
       "       [7.9, 3.8, 6.4, 2. ],\n",
       "       [6.4, 2.8, 5.6, 2.2],\n",
       "       [6.3, 2.8, 5.1, 1.5],\n",
       "       [6.1, 2.6, 5.6, 1.4],\n",
       "       [7.7, 3. , 6.1, 2.3],\n",
       "       [6.3, 3.4, 5.6, 2.4],\n",
       "       [6.4, 3.1, 5.5, 1.8],\n",
       "       [6. , 3. , 4.8, 1.8],\n",
       "       [6.9, 3.1, 5.4, 2.1],\n",
       "       [6.7, 3.1, 5.6, 2.4],\n",
       "       [6.9, 3.1, 5.1, 2.3],\n",
       "       [5.8, 2.7, 5.1, 1.9],\n",
       "       [6.8, 3.2, 5.9, 2.3],\n",
       "       [6.7, 3.3, 5.7, 2.5],\n",
       "       [6.7, 3. , 5.2, 2.3],\n",
       "       [6.3, 2.5, 5. , 1.9],\n",
       "       [6.5, 3. , 5.2, 2. ],\n",
       "       [6.2, 3.4, 5.4, 2.3],\n",
       "       [5.9, 3. , 5.1, 1.8]])"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "iris_data.data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(150, 4)"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "iris_data.data.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([5.1, 3.5, 1.4, 0.2])"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 获取第一条数据\n",
    "iris_data.data[0,:]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([5.1, 4.9, 4.7, 4.6, 5. , 5.4, 4.6, 5. , 4.4, 4.9, 5.4, 4.8, 4.8,\n",
       "       4.3, 5.8, 5.7, 5.4, 5.1, 5.7, 5.1, 5.4, 5.1, 4.6, 5.1, 4.8, 5. ,\n",
       "       5. , 5.2, 5.2, 4.7, 4.8, 5.4, 5.2, 5.5, 4.9, 5. , 5.5, 4.9, 4.4,\n",
       "       5.1, 5. , 4.5, 4.4, 5. , 5.1, 4.8, 5.1, 4.6, 5.3, 5. , 7. , 6.4,\n",
       "       6.9, 5.5, 6.5, 5.7, 6.3, 4.9, 6.6, 5.2, 5. , 5.9, 6. , 6.1, 5.6,\n",
       "       6.7, 5.6, 5.8, 6.2, 5.6, 5.9, 6.1, 6.3, 6.1, 6.4, 6.6, 6.8, 6.7,\n",
       "       6. , 5.7, 5.5, 5.5, 5.8, 6. , 5.4, 6. , 6.7, 6.3, 5.6, 5.5, 5.5,\n",
       "       6.1, 5.8, 5. , 5.6, 5.7, 5.7, 6.2, 5.1, 5.7, 6.3, 5.8, 7.1, 6.3,\n",
       "       6.5, 7.6, 4.9, 7.3, 6.7, 7.2, 6.5, 6.4, 6.8, 5.7, 5.8, 6.4, 6.5,\n",
       "       7.7, 7.7, 6. , 6.9, 5.6, 7.7, 6.3, 6.7, 7.2, 6.2, 6.1, 6.4, 7.2,\n",
       "       7.4, 7.9, 6.4, 6.3, 6.1, 7.7, 6.3, 6.4, 6. , 6.9, 6.7, 6.9, 5.8,\n",
       "       6.8, 6.7, 6.7, 6.3, 6.5, 6.2, 5.9])"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 获取第一个维度的所有取值，作为一维向量\n",
    "iris_data.data[:,0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[5.1],\n",
       "       [4.9],\n",
       "       [4.7],\n",
       "       [4.6],\n",
       "       [5. ],\n",
       "       [5.4],\n",
       "       [4.6],\n",
       "       [5. ],\n",
       "       [4.4],\n",
       "       [4.9],\n",
       "       [5.4],\n",
       "       [4.8],\n",
       "       [4.8],\n",
       "       [4.3],\n",
       "       [5.8],\n",
       "       [5.7],\n",
       "       [5.4],\n",
       "       [5.1],\n",
       "       [5.7],\n",
       "       [5.1],\n",
       "       [5.4],\n",
       "       [5.1],\n",
       "       [4.6],\n",
       "       [5.1],\n",
       "       [4.8],\n",
       "       [5. ],\n",
       "       [5. ],\n",
       "       [5.2],\n",
       "       [5.2],\n",
       "       [4.7],\n",
       "       [4.8],\n",
       "       [5.4],\n",
       "       [5.2],\n",
       "       [5.5],\n",
       "       [4.9],\n",
       "       [5. ],\n",
       "       [5.5],\n",
       "       [4.9],\n",
       "       [4.4],\n",
       "       [5.1],\n",
       "       [5. ],\n",
       "       [4.5],\n",
       "       [4.4],\n",
       "       [5. ],\n",
       "       [5.1],\n",
       "       [4.8],\n",
       "       [5.1],\n",
       "       [4.6],\n",
       "       [5.3],\n",
       "       [5. ],\n",
       "       [7. ],\n",
       "       [6.4],\n",
       "       [6.9],\n",
       "       [5.5],\n",
       "       [6.5],\n",
       "       [5.7],\n",
       "       [6.3],\n",
       "       [4.9],\n",
       "       [6.6],\n",
       "       [5.2],\n",
       "       [5. ],\n",
       "       [5.9],\n",
       "       [6. ],\n",
       "       [6.1],\n",
       "       [5.6],\n",
       "       [6.7],\n",
       "       [5.6],\n",
       "       [5.8],\n",
       "       [6.2],\n",
       "       [5.6],\n",
       "       [5.9],\n",
       "       [6.1],\n",
       "       [6.3],\n",
       "       [6.1],\n",
       "       [6.4],\n",
       "       [6.6],\n",
       "       [6.8],\n",
       "       [6.7],\n",
       "       [6. ],\n",
       "       [5.7],\n",
       "       [5.5],\n",
       "       [5.5],\n",
       "       [5.8],\n",
       "       [6. ],\n",
       "       [5.4],\n",
       "       [6. ],\n",
       "       [6.7],\n",
       "       [6.3],\n",
       "       [5.6],\n",
       "       [5.5],\n",
       "       [5.5],\n",
       "       [6.1],\n",
       "       [5.8],\n",
       "       [5. ],\n",
       "       [5.6],\n",
       "       [5.7],\n",
       "       [5.7],\n",
       "       [6.2],\n",
       "       [5.1],\n",
       "       [5.7],\n",
       "       [6.3],\n",
       "       [5.8],\n",
       "       [7.1],\n",
       "       [6.3],\n",
       "       [6.5],\n",
       "       [7.6],\n",
       "       [4.9],\n",
       "       [7.3],\n",
       "       [6.7],\n",
       "       [7.2],\n",
       "       [6.5],\n",
       "       [6.4],\n",
       "       [6.8],\n",
       "       [5.7],\n",
       "       [5.8],\n",
       "       [6.4],\n",
       "       [6.5],\n",
       "       [7.7],\n",
       "       [7.7],\n",
       "       [6. ],\n",
       "       [6.9],\n",
       "       [5.6],\n",
       "       [7.7],\n",
       "       [6.3],\n",
       "       [6.7],\n",
       "       [7.2],\n",
       "       [6.2],\n",
       "       [6.1],\n",
       "       [6.4],\n",
       "       [7.2],\n",
       "       [7.4],\n",
       "       [7.9],\n",
       "       [6.4],\n",
       "       [6.3],\n",
       "       [6.1],\n",
       "       [7.7],\n",
       "       [6.3],\n",
       "       [6.4],\n",
       "       [6. ],\n",
       "       [6.9],\n",
       "       [6.7],\n",
       "       [6.9],\n",
       "       [5.8],\n",
       "       [6.8],\n",
       "       [6.7],\n",
       "       [6.7],\n",
       "       [6.3],\n",
       "       [6.5],\n",
       "       [6.2],\n",
       "       [5.9]])"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 获取第一个维度的所有取值，作为二维数组\n",
    "iris_data.data[:,np.newaxis,0]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1.1 均值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([5.84333333, 3.054     , 3.75866667, 1.19866667])"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 计算每个属性的均值\n",
    "np.mean(iris_data.data, axis=0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1.2 中位数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([5.8 , 3.  , 4.35, 1.3 ])"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 计算每个属性的中位数\n",
    "np.median(iris_data.data, axis=0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1.3 众数"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 方法一：使用numpy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[2, 1, 2, 3, 4, 3, 1, 2, 1, 2, 2, 4, 1, 1, 3, 4, 3, 1, 4, 4, 2, 4, 4, 1, 4, 2, 3, 2, 1, 2, 1, 2, 3, 2, 4, 4, 1, 4, 2, 3, 4, 1, 1, 1, 2, 1, 1, 4, 4, 3, 1, 1, 3, 2, 2, 3, 4, 3, 3, 4, 1, 2, 3, 1, 1, 4, 2, 2, 2, 1, 2, 4, 4, 1, 2, 4, 3, 4, 2, 2, 4, 4, 2, 4, 1, 2, 1, 4, 2, 1, 4, 3, 3, 4, 1, 3, 3, 2, 2, 2]\n"
     ]
    }
   ],
   "source": [
    "# 在numpy中没有直接的方法，但是也可以这样实现：\n",
    "# 首先生成随机数据\n",
    "import random \n",
    "data = [random.choice(range(1,5)) for i in range(100)]\n",
    "print(data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[ 0 26 29 18 27]\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "2"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "counts = np.bincount(data)\n",
    "print(counts)\n",
    "np.argmax(counts)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 方法二：直接利用scipy下stats模块【推荐】"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "ModeResult(mode=array([2]), count=array([29]))"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from scipy import stats\n",
    "stats.mode(data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stats.mode(data)[0][0]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 2. 数据的基本统计描述-离散趋势\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "from sklearn.datasets import load_iris\n",
    "iris_data = load_iris()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[5.1 4.9 4.7 4.6 5.  5.4 4.6 5.  4.4 4.9 5.4 4.8 4.8 4.3 5.8 5.7 5.4 5.1\n",
      " 5.7 5.1 5.4 5.1 4.6 5.1 4.8 5.  5.  5.2 5.2 4.7 4.8 5.4 5.2 5.5 4.9 5.\n",
      " 5.5 4.9 4.4 5.1 5.  4.5 4.4 5.  5.1 4.8 5.1 4.6 5.3 5.  7.  6.4 6.9 5.5\n",
      " 6.5 5.7 6.3 4.9 6.6 5.2 5.  5.9 6.  6.1 5.6 6.7 5.6 5.8 6.2 5.6 5.9 6.1\n",
      " 6.3 6.1 6.4 6.6 6.8 6.7 6.  5.7 5.5 5.5 5.8 6.  5.4 6.  6.7 6.3 5.6 5.5\n",
      " 5.5 6.1 5.8 5.  5.6 5.7 5.7 6.2 5.1 5.7 6.3 5.8 7.1 6.3 6.5 7.6 4.9 7.3\n",
      " 6.7 7.2 6.5 6.4 6.8 5.7 5.8 6.4 6.5 7.7 7.7 6.  6.9 5.6 7.7 6.3 6.7 7.2\n",
      " 6.2 6.1 6.4 7.2 7.4 7.9 6.4 6.3 6.1 7.7 6.3 6.4 6.  6.9 6.7 6.9 5.8 6.8\n",
      " 6.7 6.7 6.3 6.5 6.2 5.9]\n"
     ]
    }
   ],
   "source": [
    "feature_1 = iris_data.data[:,0]\n",
    "print(feature_1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2.1 极差"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "3.6000000000000005"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "feature_1.max()-feature_1.min()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "3.6000000000000005"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.max(feature_1)-np.min(feature_1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2.2 四分位数\n",
    "利用np.percentile()函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "6.4\n"
     ]
    }
   ],
   "source": [
    "Q3 = np.percentile(feature_1,75)\n",
    "print(Q3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "5.1\n"
     ]
    }
   ],
   "source": [
    "Q1 = np.percentile(feature_1,25)\n",
    "print(Q1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2.3 四分位数极差（四分位距）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1.3000000000000007\n"
     ]
    }
   ],
   "source": [
    "IQR = Q3 - Q1\n",
    "print(IQR)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2.4 五数概括"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[4.3, 5.1, 5.8, 6.4, 7.9]"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "max_value = np.max(feature_1)\n",
    "Q3 = np.percentile(feature_1,75)\n",
    "median_value = np.median(feature_1)\n",
    "Q1 = np.percentile(feature_1,25)\n",
    "min_value = np.min(feature_1)\n",
    "[min_value, Q1, median_value, Q3, max_value]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2.5 箱线图"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2.5.1 单一箱线图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "import matplotlib.pyplot as plt\n",
    "plt.boxplot(x=feature_1)\n",
    "plt.ylabel('values of ' + iris_data.feature_names[0])\n",
    "plt.xlabel(iris_data.feature_names[0])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2.5.2 多个箱线图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "from pandas import DataFrame\n",
    "iris_df = DataFrame(iris_data.data, columns=iris_data.feature_names)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\matplotlib\\figure.py:457: UserWarning: matplotlib is currently using a non-GUI backend, so cannot show the figure\n",
      "  \"matplotlib is currently using a non-GUI backend, \"\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 4 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "\n",
    "fig, axes = plt.subplots(1,4)\n",
    "iris_df.plot(kind='box', ax=axes, subplots=True, title='All feature boxplots')\n",
    "axes[0].set_ylabel(iris_df.columns[0])\n",
    "axes[1].set_ylabel(iris_df.columns[1])\n",
    "axes[2].set_ylabel(iris_df.columns[2])\n",
    "axes[3].set_ylabel(iris_df.columns[3])\n",
    " \n",
    "fig.subplots_adjust(wspace=1, hspace=1) \n",
    "fig.show()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2.6 方差和标准差"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.6811222222222223"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 方差\n",
    "var = np.var(feature_1)\n",
    "var"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.68112222, 0.18675067, 3.09242489, 0.57853156])"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 所有维度方差\n",
    "var_all = np.var(iris_data.data, axis=0)\n",
    "var_all"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.8253012917851409"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 标准差\n",
    "std = np.std(feature_1)\n",
    "std"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.82530129, 0.43214658, 1.75852918, 0.76061262])"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 所有维度标准差\n",
    "std_all = np.std(iris_data.data, axis=0)\n",
    "std_all"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2.7 DataFrame描述性统计"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>sepal length (cm)</th>\n",
       "      <th>sepal width (cm)</th>\n",
       "      <th>petal length (cm)</th>\n",
       "      <th>petal width (cm)</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>150.000000</td>\n",
       "      <td>150.000000</td>\n",
       "      <td>150.000000</td>\n",
       "      <td>150.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>5.843333</td>\n",
       "      <td>3.054000</td>\n",
       "      <td>3.758667</td>\n",
       "      <td>1.198667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>0.828066</td>\n",
       "      <td>0.433594</td>\n",
       "      <td>1.764420</td>\n",
       "      <td>0.763161</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>4.300000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.100000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>5.100000</td>\n",
       "      <td>2.800000</td>\n",
       "      <td>1.600000</td>\n",
       "      <td>0.300000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>5.800000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>4.350000</td>\n",
       "      <td>1.300000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>6.400000</td>\n",
       "      <td>3.300000</td>\n",
       "      <td>5.100000</td>\n",
       "      <td>1.800000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>7.900000</td>\n",
       "      <td>4.400000</td>\n",
       "      <td>6.900000</td>\n",
       "      <td>2.500000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       sepal length (cm)  sepal width (cm)  petal length (cm)  \\\n",
       "count         150.000000        150.000000         150.000000   \n",
       "mean            5.843333          3.054000           3.758667   \n",
       "std             0.828066          0.433594           1.764420   \n",
       "min             4.300000          2.000000           1.000000   \n",
       "25%             5.100000          2.800000           1.600000   \n",
       "50%             5.800000          3.000000           4.350000   \n",
       "75%             6.400000          3.300000           5.100000   \n",
       "max             7.900000          4.400000           6.900000   \n",
       "\n",
       "       petal width (cm)  \n",
       "count        150.000000  \n",
       "mean           1.198667  \n",
       "std            0.763161  \n",
       "min            0.100000  \n",
       "25%            0.300000  \n",
       "50%            1.300000  \n",
       "75%            1.800000  \n",
       "max            2.500000  "
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "iris_df.describe()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 3. 数据的基本统计描述-基本统计图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "from sklearn.datasets import load_iris\n",
    "iris_data = load_iris()\n",
    "sample_1 = iris_data.data[0,:]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.1 条形图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYQAAAEICAYAAABfz4NwAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAFeFJREFUeJzt3XuUZWV95vHvI7Q0CAhIxeFqJWiYQSWiPahBFAlxIUyIF0biiA4ZHJYZrxMcZZw1DkRxMFEHXUQNOqQNSFAREoWRi0pzF+hGaEAEhTRyUxrlpiiK/OaP/ZaeLupyqqt2VTf9/ax1Vu+zL+/7nnfv3s++nVOpKiRJetJCN0CStG4wECRJgIEgSWoMBEkSYCBIkhoDQZIEGAiaZ0lWJdlvgereNMlXkzyQ5EsTTE+Sv09yX5Irk+yd5KZ5bN/SJB+cr/qk8TZe6AZI8+hg4OnA06rq0QmmvwT4Y2DHqvpZG7fr2lSU5GjgmVV16NosP0T5y4BTquqzfZSvDZNnCFovtaP5mW6/zwBuniQMxqavGgiDqer3YEpPOAaCFsK/TfKddmnm75MsBkiydZKzkqxu085KsuPYQkmWJTk2yaXAw8DvjS84yb9p892f5IYkB7XxxwDvBw5J8tMkh49b7nDgs8CL2/RjkuyT5I6BeVYleW+SlcDPkmzc3t+Z5KEkNyX5oyT7A+8bqOvaiTohyR5Jrm7LfgFYPDBt0r5IciywN3BCK/+ENv7jSW5P8mCSFUn2nvmq0Qatqnz5mrcXsAq4HtgJ2Aa4FPhgm/Y04LXAZsAWwJeAfxpYdhnwA+DZdJc7F40rexHwfbqd8ZOBfYGHgF3b9KPpLrNM1rbDgEsG3u8D3DGu7de0tm9KdznpdmD7Nn0U2GXIup4M3Ab819bug4FfzbAv3jyuzEPbchsDRwI/BBYv9Dr3tf68PEPQQjihqm6vqp8AxwKvB6iqH1fVl6vq4ap6qE172bhll1bVDVX1aFX9aty0FwGbA8dV1S+r6pvAWWPlz5FPtLb/HPg1sAmwW5JFVbWqqm4ZspwX0QXB8VX1q6o6HbhqbOKQfbGGqjqlLfdoVX20tW2t7oFow2QgaCHcPjB8G7A9QJLNkvxdktuSPAhcBGyVZKNJlh1ve+D2qnpsXPk7zFG716i/qr4PvIvubOCeJKcl2X7IcrYH7qyqwV+XvG1sYMi+WEOSI5Pc2J6iuh94KrDt0J9MGzwDQQthp4HhnYG72vCRdEe0L6yqLYGXtvEZmH+qn+e9C9hp3M3mnYE7Z9fcNaxRf1WdWlUvobshXcCHh2gnwN3ADkkGP9vOA8PT9cUa5bf7Be8FXgdsXVVbAQ+wZt9JUzIQtBDemmTHJNvQXe//Qhu/BfBz4P427X/NsNwrgJ8B70myKMk+wJ8Ap81Ns9eUZNck+ybZBPgFXdt/3Sb/CBid4kmoy4FHgXe0m9OvAfYcmD5dX/yINW+qb9HKWw1snOT9wJZr/+m0ITIQtBBOBc4Dbm2vsS9jHU93s/Ze4FvAOTMptKp+CRwEvLKV8UngTVX13blp9uNsAhzX6voh8Dt0AQfdTWCAHye5epK2vobuRvZ9wCHAGQOzTNcXHwcObk8gfQI4F/gacDPdpadfMPXlNelxsuYlTEnShsozBEkSYCBIkhoDQZIEGAiSpGad+oGubbfdtkZHRxe6GZK03lixYsW9VTUyF2WtU4EwOjrK8uXLF7oZkrTeSHLb9HMNx0tGkiTAQJAkNQaCJAkwECRJjYEgSQIMBElSYyBIkgADQZLUGAiSJGAd+6bybIwedfa81bXquAPnrS5Jmi+9BkKSVcBDdH9W8NGqWtJnfZKktTcfZwgvr6p756EeSdIseA9BkgT0HwgFnJdkRZIjJpohyRFJlidZvnr16p6bI0maTN+BsFdVPR94JfDWJC8dP0NVnVhVS6pqycjInPyktyRpLfQaCFV1V/v3HuBMYM8+65Mkrb3eAiHJU5JsMTYMvAK4vq/6JEmz0+dTRk8HzkwyVs+pVXVOj/VJkmaht0CoqluBP+irfEnS3PKxU0kSYCBIkhoDQZIEGAiSpMZAkCQBBoIkqTEQJEmAgSBJagwESRJgIEiSGgNBkgQYCJKkxkCQJAEGgiSpMRAkSYCBIElqDARJEmAgSJIaA0GSBBgIkqTGQJAkAQaCJKkxECRJgIEgSWoMBEkSYCBIkhoDQZIEGAiSpMZAkCQBBoIkqTEQJEnAPARCko2SfDvJWX3XJUlae/NxhvBO4MZ5qEeSNAu9BkKSHYEDgc/2WY8kafb6PkM4HngP8NhkMyQ5IsnyJMtXr17dc3MkSZPpLRCS/DvgnqpaMdV8VXViVS2pqiUjIyN9NUeSNI0+zxD2Ag5Ksgo4Ddg3ySk91idJmoXeAqGq/ntV7VhVo8CfAd+sqkP7qk+SNDt+D0GSBMDG81FJVS0Dls1HXZKkteMZgiQJMBAkSY2BIEkCDARJUmMgSJIAA0GS1BgIkiTAQJAkNQaCJAkwECRJjYEgSQIMBElSYyBIkgADQZLUGAiSJGCe/h6CnnhGjzp7XutbddyB81qftCHyDEGSBBgIkqTGQJAkAQaCJKkxECRJgIEgSWoMBEkSYCBIkhoDQZIEGAiSpMZAkCQBBoIkqTEQJEmAgSBJagwESRJgIEiSmt4CIcniJFcmuTbJDUmO6asuSdLs9fkX0x4B9q2qnyZZBFyS5GtV9a0e65QkraXeAqGqCvhpe7uovaqv+iRJs9PrPYQkGyW5BrgHOL+qrphgniOSLE+yfPXq1X02R5I0hV4Doap+XVXPA3YE9kzynAnmObGqllTVkpGRkT6bI0mawrw8ZVRV9wPLgP3noz5J0sz1+ZTRSJKt2vCmwH7Ad/uqT5I0O30+ZbQd8LkkG9EFzxer6qwe65MkzUKfTxmtBPboq3xJ0tzym8qSJMBAkCQ1Q18ySrI7MDq4TFWd0UObJEkLYKhASHISsDtwA/BYG12AgSBJTxDDniG8qKp267UlkqQFNew9hMuTGAiS9AQ27BnC5+hC4Yd0v2Iaut+v2723lkmS5tWwgXAS8EbgOn57D0GS9AQybCD8oKq+0mtLJEkLathA+G6SU4Gv0l0yAnzsVJKeSIYNhE3pguAVA+N87FSSnkCGDYQnAe9sP2NNkq2Bj/bWKknSvBv2sdPdx8IAoKruwx+uk6QnlGED4UntrACAJNvQ709nS5Lm2bA79Y8ClyU5ne7eweuAY3trlSRp3g0VCFX1D0mWA/vSfSntNVX1nV5bJkmaV0Nf9mkBYAhI0hOUfw9BkgQYCJKkxkCQJAEGgiSpMRAkSYCBIElqDARJEmAgSJIaA0GSBBgIkqTGQJAkAQaCJKkxECRJgIEgSWp6C4QkOyW5IMmNSW5I8s6+6pIkzV6ffwbzUeDIqro6yRbAiiTn+4d1JGnd1NsZQlXdXVVXt+GHgBuBHfqqT5I0O/NyDyHJKLAHcMV81CdJmrneAyHJ5sCXgXdV1YMTTD8iyfIky1evXt13cyRJk+g1EJIsoguDz1fVGRPNU1UnVtWSqloyMjLSZ3MkSVPo8ymjAP8XuLGqPtZXPZKkudHnGcJewBuBfZNc014H9FifJGkWenvstKouAdJX+ZKkueU3lSVJgIEgSWoMBEkSYCBIkhoDQZIEGAiSpMZAkCQBBoIkqTEQJEmAgSBJagwESRJgIEiSGgNBkgQYCJKkxkCQJAEGgiSpMRAkSYCBIElqDARJEtDj31SWNHdGjzp7XutbddyB81qf1g2eIUiSAANBktQYCJIkwECQJDUGgiQJMBAkSY2BIEkCDARJUmMgSJIAA0GS1BgIkiTAQJAkNb0FQpKTktyT5Pq+6pAkzZ0+zxCWAvv3WL4kaQ71FghVdRHwk77KlyTNrQW/h5DkiCTLkyxfvXr1QjdHkjZYCx4IVXViVS2pqiUjIyML3RxJ2mAteCBIktYNBoIkCej3sdN/BC4Hdk1yR5LD+6pLkjR7G/dVcFW9vq+yJUlzz0tGkiTAQJAkNQaCJAkwECRJjYEgSQIMBElSYyBIkgADQZLUGAiSJMBAkCQ1BoIkCTAQJEmNgSBJAgwESVJjIEiSAANBktQYCJIkwECQJDUGgiQJMBAkSY2BIEkCDARJUmMgSJIAA0GS1BgIkiTAQJAkNQaCJAmAjRe6AZK0rhk96ux5rW/VcQfOa32T8QxBkgQYCJKkxkCQJAEGgiSp6TUQkuyf5KYk309yVJ91SZJmp7dASLIR8LfAK4HdgNcn2a2v+iRJs9PnGcKewPer6taq+iVwGvCnPdYnSZqFVFU/BScHA/tX1Zvb+zcCL6yqt42b7wjgiPZ2V+CmXho0uW2Be+e5zg2Z/T2/7O/5tRD9/YyqGpmLgvr8YlomGPe49KmqE4ETe2zHlJIsr6olC1X/hsb+nl/29/xa3/u7z0tGdwA7DbzfEbirx/okSbPQZyBcBTwrye8meTLwZ8BXeqxPkjQLvV0yqqpHk7wNOBfYCDipqm7oq75ZWLDLVRso+3t+2d/za73u795uKkuS1i9+U1mSBBgIkqRmvQuEJPskOWvY8XNQ36sGv2GdZFmSaR8rS7LdXLQnyUiSc2Zbzhy0Y636N8n2SU6fZNpv+jLJ+wbGjya5fsjy35XkTTNt1wTlvC3Jn8+2nCnKPyzJ9kPMt7R9h2eo8XPQLvudte/fJG+ZqB8G+zLJ85IcMDDt6CTvHqLsJPlmki1n2q4Jyvp6kq2nm2+9C4QF8Cq6n96Yqb8EPjPbyqtqNXB3kr1mW9ZCqKq7qmqY/2jvm36WNSXZGPhPwKkzbtjjnQS8Yw7KmcxhwLQ7pgVgv89CVX26qv5hmtmeBxwwzTwTOQC4tqoeXItlxzsZ+C/TzTTngZDkKUnOTnJtkuuTHNLGvyDJhUlWJDk3yXZt/LIkxye5rM2/Zxu/Zxv37fbvrjNsw0lJrmrL/2kbf1iSM5Kck+R7Sf56YJnDk9zc2vOZJCck+UPgIOBvklyTZJc2+79PcmWbf+9JmvFa4JxW9kZJPpLkuiQrk7y9jV+V5ENJLk+yPMnzW9/ckuQtA2X9E/CGdbHfk/y/JLu34W8neX8b/kCSN487Uto0yWmtD74AbNrGHwds2vr4863ojdp6uCHJeUk2naD6fYGrq+rRVs4z25HQtUmuTrJLujObC5N8sa2v45K8oa2/68bWaVU9DKwa64dpPvNoku8m+Vz7LKcn2Wyy/k535LkE+Hz7jJsmeX/bPq9PcmKSib7IOVn9U63TD4/fNpNs1j7/yiRfSHJFkiX2+9T9nuR3kqxow3+QpJLs3N7f0vr1N0f7rQ3XJrkceGsb92Tgr4BDWhsOacXv1tbXrUkmC8Q3AP880J43tc99bZKT27ilST6V5IJW1svS7ftuTLJ0oKyvAK+fro+pqjl90e0IPzPw/qnAIuAyYKSNO4TuMVSAZWPzAy8Frm/DWwIbt+H9gC+34X2Asyao9zfjgQ8Bh7bhrYCbgafQHS3c2tq0GLiN7stz2wOrgG1aWy8GTmjLLwUOHqhnGfDRNnwA8PUJ2vK7wIqB938BfHng82zT/l0F/EUb/j/ASmALYAS4Z2D5HYDr1tF+P4pu49+S7rsn57bxF9D9FMnoQNl/OVD/7sCjwJL2/qcDZY62ac9r7784tj7H1X0M8PaB91cAr27Di4HNWrvvB7YDNgHuBI5p87wTOH5g+f8BHDnENj5K9637vdr7k4B3D9HfSwbK2GZg+GTgTyba3gbmWQocPEQdj9s2W9v+rg0/x36fUb/fQLdtv41u+34D8Azg8jb9aODdbXgl8LI2/Df8drs/jLY/GVjmstYv2wI/BhZNUPdtwBZt+Nl0P+uz7bh9yFK634kL3W/FPQg8l+5gf8XYumzzfg942lR93Mf3EK4DPpLkw3Q7kIuTPIduQzy/BfJGwN0Dy/wjQFVdlGTLJFvR7Rg/l+RZdBvBohm04RXAQfntdbrFwM5t+BtV9QBAku/QrdxtgQur6idt/JeA35+i/DPavyvoNtLxtgNWD7zfD/h0tSOqsXqasS/rXQdsXlUPAQ8l+UWSrarqfuAepj/tXah+v5julP9fgLOBP25HbaNVdVOS0YF5Xwp8otW5MsnKKcr9l6q6pg1P1c83AiTZAtihqs5s5f+ijQe4qqrubu9vAc5ry18HvHygvHuAfz3N5x1ze1Vd2oZPoeuDc5i6vwe9PMl76Hae29DteL46RL27TlPHRNvmS4CPA1TV9fb7jPr9MmAvum33Q8D+dDvfiwdnSvJUYKuqurCNOpnul54nc3ZVPQI8kuQe4Ol0v+4waJu2P4DurOz0qroXHrcP+WpVVZLrgB9V1XWtTTfQrb+x9Tm2H/nxZI2a80CoqpuTvIDuCOV/JzkPOBO4oapePNliE7z/AHBBVb267VSWzaAZAV5bVWv8UF6SFwKPDIz6NV0fDH263oyVMbb8eD+nC6HB9kz2hY+xsh4b17bHBspe3Mqc1AL2+1V0p+W3AufThet/ptuZDFPnZMavp4kuXQz281TrcHy/Dvb54Pqbtp8HTNR3Yer+BiDJYuCTdEeutyc5mjW3lykXn6aOibbNmWzf9vuaLgb2pjtw/Gfgva3O8Q9YTPV/fCIT7YfGezTJk6rqsWnKH2YfAkP0cx/3ELYHHq6qU4CPAM+nO9UZSfLiNs+iJM8eWGzsevdLgAfaEfxT6U4zoTvlmolzgbePXR9Mssc0818JvCzJ1ulumL12YNpDdEfNM3Ezax5ZnQe8pZVNkm1mWN7vA1M+/bFQ/V7dT5vfDrwO+Bbdf6B3M+4IqrmIdi+knb3sPjDtV0lmchYI3VHqM1s7HgTuSPKqVv4mY9eXZ2Dafh6w81i/0l2bvYSp+3twOxrbCd2bZHO6S0HDmm6dTuQSuvVDuifmnjswzX6f2kXAocD32o75J3QHXZcOztTO5B9o/5dgzXt+a7MPge5z/V4b/gbwuiRPg5nvQ9q+8F/RXaaeVB9PGT0XuDLJNXTXBj/YdhoHAx9Oci3dKcwfDixzX5LLgE8Dh7dxf013pHsp3SngTHyA7lLHynQ3ND8w1cxVdSfd6eAVwNeB7wAPtMmnAf8t3Q3TXSYpYnx5PwNuSfLMNuqzwA9ae64F/sMMP8/L6S7HTGUh+/1iulPVh9vwjkwcCJ8CNm+XLN5DF8RjTqTrn89PsNxkvkZ3Kj/mjcA7WvmX0f0HmIm96Nb/MG4E/mOraxvgU9P091Lg0239PEL3BNp1dA8MXDVsA4dYpxP5JN0OcyXdEe5Kfrt92+9TqKpVbfCi9u8lwP1Vdd8Es/858LfpbioPHolfQHcTefCm8jDOprsXQ3U/+3MscGH7jB+bQTkALwC+NXbZelLT3cjp+8W4mz4L2I7N278b011TfPUsy3s13U55Ltp2EbD1E7Hf5+BznAk8aw7K2QM4ech5R2k3DNeHF12wL27Du9AdJT7Zfl+3X3T3as6fo7I+DvzRdPP1+fcQ1jdHJ9mP7rTyPLojiLVWVWeOnd7NRpIR4GM18RGJuqectqN7gmI2tgX+5+ybs07aDLigXRoK3ZNtv5xlmfZ7z6rq7nSPAG9Zs/8uwvVV9Y3pZvLH7SRJgN9UliQ1BoIkCTAQJEmNgSBJAgwESVLz/wE3gl9ptxwNOAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "p1 = plt.bar(range(1, len(sample_1)+1), \n",
    "             height = sample_1, \n",
    "             tick_label = iris_data.feature_names,  \n",
    "             width=0.3)\n",
    "plt.ylabel('cm')\n",
    "plt.title('bar of first data')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.2 饼状图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "\n",
    "labels = 'Sunny', 'Windy', 'Frogy', 'Snow'\n",
    "sizes = [15, 30, 45, 10]\n",
    "explode = (0, 0.1, 0, 0)  # 这里只弹出第二个天气(i.e. 'Hogs')\n",
    "\n",
    "fig1, ax1 = plt.subplots()\n",
    "ax1.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%',\n",
    "        shadow=True, startangle=90)\n",
    "ax1.axis('equal')  # Equal aspect ratio ensures that pie is drawn as a circle.\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.3 折线图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<function matplotlib.pyplot.figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True, FigureClass=<class 'matplotlib.figure.Figure'>, clear=False, **kwargs)>"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "x = np.arange(0, 5, 0.3)\n",
    "y = np.sin(x)\n",
    "\n",
    "plt.plot(x, y)\n",
    "plt.show()\n",
    "plt.figure"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.4 直方图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "from sklearn.datasets import load_iris\n",
    "import matplotlib.pyplot as plt\n",
    "iris_data = load_iris()\n",
    "feature_2 = iris_data.data[:,1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.hist(feature_2, bins=10)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.5 散点图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "feature_1 = iris_data.data[:,0]\n",
    "feature_3 = iris_data.data[:,2]\n",
    "plt.scatter(feature_1,feature_3)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.6 分位数-分位数图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "# 调用 scipy包中的scipy.stats.probplot函数\n",
    "# 验证feature_3是否服从正态分布\n",
    "from scipy import stats\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXwAAAEWCAYAAABliCz2AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzt3XeYFFXWx/HvIa0iKjpglkFcA6AEHfO6rmFdzGsOgwFBVAyou74GTCvirgEjGBAzs4riorKAiAFzYAgiwYiCiKuACUUFZs77x63RYZjQE6qrp/v3eZ5+pruquur0KGdun3vrXnN3REQk+zVJOgAREUkPJXwRkRyhhC8ikiOU8EVEcoQSvohIjlDCFxHJEUr40uiZ2VVmNqKO7z3FzF6tZv94Mzu5smPN7Acz61CX69Yyxklm1ifu60j2U8KXRJjZp2b2U5Q0vzSz+82sVdJxVeTuB7j7g1Xsa+XucwHM7AEzu6au12mI34eZtTczN7NmdY1DspsSviTpEHdvBewA7ARcVvEAC3Ll/9Mafx8i9ZEr/5Akg7n758B4YDv4tYQxyMxeA5YBHcxsEzN72sy+NrOPzOy0CqdZw8xGmtlSM5tqZl3LdpjZxWb2cbRvtpkdXuG9Zma3m9l3Zvaeme1bbkeV5ZSoNf17M+sLFAL/F7XQx5jZhWb2RIXjbzezW2r7+6hwjiZmdpmZzTOzr8zsITNbN9r9cvTz2yiO3Wq6luQWJXxJnJltDhwITCu3+USgL7A2MA94BFgAbAIcBVxbPjEDhwGPA+sD/waeNLPm0b6PgT2BdYF/ACPMbONy790FmAu0Aa4E/mNm66cav7sPA4qA66MyzyHACKCHmbWOPmMz4Fjg4ZrOV8Xvo8wp0WNvoAPQChgS7ftj9LN1FMcbqX4GyQ1K+JKkJ83sW+BV4CXg2nL7HnD3We6+EtgI+ANwkbv/7O7TgeGEPwplprj7KHdfAdwErAHsCuDuj7v7QncvdfeRwIfAzuXe+xVwi7uviPa/DxxUnw/m7l8QWtxHR5t6AIvdfUo1b6vu91GmELjJ3ee6+w/AJcBxqttLKvQ/iSTpr+7+XBX7Piv3fBPga3dfWm7bPKCgsuPdvdTMyr4NYGYnARcA7aNDWhFa82U+91VnEZxX9t56ehA4E7gH6EnNrfvqfh9lNiHEV2Ye4d/xhnUNUnKHWviSqcon4IXA+ma2drlt7YDPy73evOxJ1Mm7GbDQzPIJCfdsIM/dWwMzASv33k3NrPzrdtE16xpvmSeBLma2HXAwoexTXwuB/HKv2wErgS+riEHkV0r4kvHc/TPgdeCfZraGmXUBerNqAt3RzI6IShvnAb8AbwJrERLhIgAz68XqnaEbAOeaWXMzOxroCIyrZZhfEmrq5eP+GRhF6FN4293n1/KclXkEON/MtoiGbV4LjIxKX4uA0opxiJRRwpfG4nhCSWYhMBq40t0nltv/FKFT9BtCbf+IqCY/GxgMvEFIytsDr1U491vAVsBiYBBwlLsvqWV89wKdzOxbM3uy3PYHo2vW2Fmbovuic70MfAL8DJwD4O7LCPG/FsWxawNdU7KEaQEUkfiYWTvgPWAjd/8+6Xgkt6mFLxKTqC/hAuBRJXvJBBqlIxIDM1uLUEKaRxiSKZI4lXRERHKESjoiIjkio0o6bdq08fbt2ycdhohIozFlypTF7t42lWMzKuG3b9+e4uLipMMQEWk0zGxezUcFKumIiOQIJXwRkRyhhC8ikiOU8EVEcoQSvohIjlDCFxHJEUr4IiI5QglfRCRJr74K11+flkvFmvDN7Hwzm2VmM83sETNbI87riYg0GkuXwtlnw557wt13w48/xn7J2BK+mW0KnAsUuPt2QFPguLiuJyLSaEyYANttB3fcAf37wzvvwFprxX7ZuEs6zYA1o2XnWlL7dUJFRLLHkiVw8snQo0dI8K+9BrfcAq1apeXysSV8d/8cuBGYD3wBfOfuz1Y8zsz6mlmxmRUvWrQornBERJLjDqNGQadO8O9/w2WXwbRpsNtuaQ0jzpLOesBhwBbAJsBaZtaz4nHuPszdC9y9oG3blCZ8ExFpPL74Ao48Eo4+GjbfHIqLYeBA+N3v0h5KnCWd/YBP3H2Ru68A/gPsHuP1REQyhzvcf39o1Y8fD9ddB2++CV27JhZSnNMjzwd2NbOWwE/AvoDmPhaR7PfJJ9C3Lzz3XBiFM3w4bL110lHFWsN/CxgFTAXeja41LK7riYgkrqQEbr01jMB5660wCmfSpIxI9hDzAijufiVwZZzXEBHJCLNnQ58+8MYbcMABYWz95psnHdUqdKetiEh9rFgB11wD3bvDBx/AiBEwdmzGJXvIsCUORUQalSlT4NRTYcYMOPZYuO022GCDpKOqklr4IiK19dNPcNFFsPPOsGgRPPkkPPpoRid7UAtfRKR2Xn451Oo//BBOOy1MfNa6ddJRpUQtfBGRVHz/PfTrB3vtFUbjPP88DBvWaJI9KOGLiNRs3Djo3DmMvLngglCz32efpKOqNSV8EZGqLF4MPXvCQQfBOuvA66/D4MFpmdkyDkr4IiIVucPIkWFahJEj4corYepU2GWXpCOrF3XaioiUt3AhnHkmPP00FBSEWv322ycdVYNQC19EBEKrfvjw0KqfOBFuvDHcNZslyR7UwhcRgY8/DpOdvfAC/OlPcM898PvfJx1Vg1MLX0RyV0kJ3HRTaMUXF4dROM8/n5XJHtTCF5FcNXMm9O4Nb78NBx8Md94Jm22WdFSxUgtfRHLL8uXwj3/ADjvA3LlhycGnn876ZA9q4YtILpk8OUx2NnMmnHBCWEA8h5ZWVQtfRLLfsmXw97/DrrvCN9/AmDFQVJRTyR6U8EUk2734YuiUHTw4THY2a1ao2WeAoiJo3x6aNAk/i4rivZ4Svohkp+++g9NPD3PemIXEf9ddsO66SUcGhOTety/MmxduAZg3L7yOM+kr4YtI9hkzJtxANXx4KOXMmBHG12eQAQNCpam8ZcvC9rgo4YtI9li0KHTGHnoo5OXBm2/CDTdAy5ZJR7aa+fNrt70hKOGLSOPnHoZXduwIo0bB1VeHG6l22inlU6RaT2+ounu7drXb3hCU8EWkcVuwILToCwvDHbLTpsHll0OLFimfItV6ekPW3QcNWv2LR8uWYXtclPBFpHEqLQ1TIXTqFObAuflmeO21sFBJLaVaT2/IunthYVgwKz8/9Cnn54fXhYW1P1eqlPBFpPH58MMw+uaMM8JC4u++C+edB02bVvmW6koxqdbTG7ruXlgIn34a/nZ9+mm8yR6U8EWkMVm5Mkxb3KULTJ8eRuFMnAgdOlT7tppKManW05OouzckJXwRaRxmzIDddoMLL4S//AVmzw6Tn5nV+NaaSjGp1tOTqLs3JCV8Eclsv/wCV1wBO+4YmuYjR8Lo0bDJJimfoqZSTKr19CTq7g3J3D3pGH5VUFDgxcXFSYchIpnizTdDK372bDjxxNAxm5dX7VuKikLLff78UGoZNCi8njdv9WPz80PtvDEzsynuXpDKsWrhi0jm+fFHOP982H13WLoUxo2Dhx5KKdlXVqs/8MDGXYppKEr4IpJZyhYNv+WWsJj4zJlwwAEpvbWqWv24cY27FNNQlPBFJDN8+y306QP77QfNmsFLL8HQobDOOlW+peJQy8rKNhDKO+keApmJtACKiCTvqadCa/6rr+Cii+DKK2HNNat9S1n5pqxFP29eaL1X1i3ZWIZNxk0JX0SS8+WXcO658Nhj0LVrmOVyxx1Temtl5Rv31ZN+Ltbqq6KSjoiknzs8/HCYFuHJJ0NGnjw55WQPVQ+1dFetvipK+CKSXvPnw0EHwUknwTbbhDtmL70UmjdfpSbfpk14lNXn+/VbtV6//vqVn75sqGUu1+qropKOiKRHaWlYceqii0Iz/LbbQhaP5r+pWJNfsuS3t86bB3feuerr5s3DhJjLl/+2XeWb6sXawjez1mY2yszeM7M5ZrZbnNcTkQz1wQdhxamzzoLdduPJa2bSfvA5NGne9NeWfM+eq9fkq7NiBay9tso3tRF3C/9W4Bl3P8rMWgCZt+yMiMRn5cqweHjZqJv776eo2cn0Pd0qbcnX1tdfw+LFDRNqLogt4ZvZOsAfgVMA3H05sLy694hIFpk+PUyLMHUqHHEEDBkCG2/MgPa1a8lXR8MtayfOkk4HYBFwv5lNM7PhZrZWxYPMrK+ZFZtZ8aJFi2IMR0TS4uefw5jJggJ++vhzzmgziiajn6DN9hvTpk3VN0fVlur1tRdnwm8G7ADc6e7dgR+Biyse5O7D3L3A3Qvatm0bYzgiErvXX4fu3eHaa/l4955stXw2dy8+EvdQuqlN+SYvLzzK6vNnnql6fX3FWcNfACxw97ei16OoJOGLSONWVASDLvmBMz+7lLMYwudNNqcPz/DsK3+p0/latlQyj0tsLXx3/x/wmZltE23aF5gd1/VEJP2KimBk72cZ99l2nMUQhnIWnUpn8iypJ/uKLXkl+/jEPUrnHKAoGqEzF+gV8/VEJCZl88zPmxeGzq9T8jWD+RtP8wDvsQ178gqvs0etzpkN89E3JrEmfHefDqQ0Mb+IZK6KN0UdVvIEQzmLNixmEJcykMv5hTVqdU51uqafplYQyXFl0xmYhWkLzMKjadPws1mz326K2pD/8ThH8QRHsZBNKKCYyxiUUrI3U+kmaZpaQSSHVWy5l59lsrQ0/CwpAXBO5kFu4gJasoyL+SeD+RsraZ7SddQRmxnUwhfJYZVNMVxRPp/yDD14gF7MojNdeYfruLjSZF/Wiodfp8hRaz6DKOGL5JiiojB3jVn1N0EZpZzN7cxkO3bndc5iCHvxEh+wTaXHt2wZZjxevDh8U1i5MvzUjJWZQyUdkRxSVAS9eoWJx6qzDe8xnD78gdcYTw/O4C7mk7/acU2bhpJPfn7ogFViz2xq4YvkgLJWfc+e1Sf7ZqzgEq7lHbrSkTmcyEMcyLjVkn3LljBihFrxjY1a+CJZLtVWfXemci+96c50HuNo+tvt/M83/LUVr9Z846eEL5Klioqgf/+a569Zg5+4gqu5kBtYRFtOb/sf7v7qcI5JT5iSRrUq6ZjZembWJa5gRKRhlLXqa0r2e/Aq0+nGJfyLBzmZgjVn88ebD09PkJJ2NSZ8M5tkZuuY2frAO4Tpjm+KPzQRqa2ym6hqqtW3Yim3czavsictWM5+TGRg/r1cf896KtVksVRKOuu6+/dm1ge4392vNLMZcQcmIrVT8SaqqvRgPHdzOpuxgDk9zqPj4wN5rlWr9AQpiUqlpNPMzDYGjgH+G3M8IlJHNd1EtT5LeJCTGM+B/NS0FROvfI2O428GJfuckUrCvxqYAHzs7pPNrAPwYbxhiUhF5W+YquxR9U1UzlE8zmw6cTyP8O5fL2ebH6fxl6t2S2f4kgFqLOm4++PA4+VezwWOjDMoEVlVqkMrK9qIL7iDfhzOkxSzI8WDnuWgS7vGE6RkvFQ6bbc2s+fNbGb0uouZXRZ/aCK5q2JrvqZO2NU5vbiPOXSkB88woPn1fPDgm0r2OS6Vks49wCXACgB3nwEcF2dQIrks1SGVVdmCuTzL/txHb96hKwdu8g6d7r+QE07SbTe5LpX/A1q6+9tmVn7bypjiEck5qd4gVZMmlHAOtzOIAZTQlDO4kwnt+vLJPM2gIkEqCX+xmW0JOICZHQV8EWtUIjmirrX5ijoym3vpzW68yVgO5Azu4qsWm3PftQ0Tp2SHVP70nwXcDWxrZp8D5wFnxhqVSI4YMKB+yb45y7mMgUyjO1vxIYWM4GD+y095m3PffZrvRlZVY8J397nuvh/QFtjW3f/g7p/GHplIFqrYGVvdfPRVadEizFTpk4tZ3mUnBnIFvzvuCNp8OZsiL8TdWLxYyV5WV2NJx8yuqPAaAHe/OqaYRLJSQ5Rv8vJgyPXLOO6dq+CkwbDRRvDUU3DooQ0Wp2SvVGr4P5Z7vgZwMDAnnnBEskdDdca2aMFv5ZmXXoI+feCjj+C00+D666F16waJV7JfKjdeDS7/2sxuBJ6OLSKRLNBQnbF5eXDrrVB4yPdw5kVw113QoQM8/zzss0/DBCs5oy4Dc1sCHRo6EJFsUN9WfX5+WD1qFWPHQuczYOFCuOACGDgwLDklUkup1PDfJRqSCTQldN6qfi9SQX1b9S1ahJWkfrV4MZx3Xjhx584wahTsskuDxCq5KZUW/sHlnq8EvnR33XglOamh6vIV/Vq6KSQsEjtyJJxzDnz3HVx5JVx6afiLIFIPVSb8aMETgKUVdq1jZrj71/GFJZJ5GqouX2aVztgyn38O/frB00/DTjvBvffC9ts3zAUl51XXwp9CKOVYJfsc1fElx9T3JqnyVmnRQ2jVDx8Of/97uMjgweGrRNOmDXNBEapJ+O6+RToDEclEsQytrOjjj8MQyxdfhL33hnvugS23rN8FRSqR0igdM1sP2IowDh8Ad385rqBEMkGDD62smOxLSsKOyy6D5s1h2LAwxt4q+1ItUn+pjNLpA/QHNgOmA7sCbwAaBCxZ7Ywz6pfsq23Vz5wJvXvD22/DIYfAnXfCppvW/WIiKUhl8rT+wE7APHffG+gOLIo1KpGE9esHP/xQ9/fn5VWR7Jcvh6uugh12gLlz4ZFHwtQISvaSBqmUdH5295/NDDP7nbu/Z2bbxB6ZSJrVpV5f6Y1SVXn7bTj1VJg1C044IZRz2rSpS6gidZJKwl9gZq2BJ4GJZvYNsDDesETSqy71+tVulKrKsmVw+eVwyy2w8cYwZgwcfHDN7xNpYKnMpXN49PQqM3sRWBd4JtaoRNKkrqNwquyIrejFF0NH7Ny5oVPguutgnXXqHK9IfVRZwzezsWZWaGZrlW1z95fc/Wl3X56e8ETiU5e1Y888MwyZr3G++e++g759wwRnTZrApEmhY1bJXhJUXaftMMK0Cp+a2Ugz+6uZ1frebjNrambTzOy/dY5SJAa1vZFqrbXgjjtSOHDMGOjUKdwle+GF8M47sNdedY5TpKFUmfDd/Sl3Px5oB/wHOBmYb2b3mdmfa3GN/mj+fMkA9VltqkULuPvuGg766is4/viwGEleHrz1VpivXjNbSoZIZYnDn9x9ZFTL358wLDOlGr6ZbQYcBAyvV5Qi9VSX8k2ZKodYlnEPF+jUCZ54Aq6+GoqLoaCgXjGLNLRUbrzaEDgGOA7YGHgc6JXi+W8B/g9Yu64BitRHXTtlq71pqrzPPguF/bFjYdddw3w4nTvXOV6ROFXXaXuamb0ATAW2Bv7P3Tu4+0XuPr2mE5vZwcBX7j6lhuP6mlmxmRUvWqT7uaTh1LVVX2OLHqC0NKw+1blzGIlzyy3w6qtK9pLRzN0r32F2P/AI8Jy7l9b6xGb/BE4kzKG/BrAO8B9371nVewoKCry4uLi2lxKpVJs2tU/2Kd1I9eGHYbKzl16CffcNc+B00OSxkgwzm+LuKdUPq+u07eXuz9Yl2Ufvv8TdN3P39oRy0AvVJXuRhlRUVLcyTrU3Uq1cCTfcAF26wPTpYRTOxIlK9tJo1GVNW5GM179/7Y6v8Uaqd94Jk51NmQKHHRbGZ26ySb3jFEmnVCZPqzd3n+Tuupdc0iKV1n2LFjBiRBhgU+2NVL/8EqZFKCgIHbSPPQajRyvZS6OUyhKHldISh5KpBgyofn/K0yK88UZo1c+ZAyedBDfdFN4s0kilusRhO+Cb6HlrYD6gFbEkI1V3Q9WIESkk+h9/DH81brsNNtsMxo2DAw5o0BhFklBdp+0W7t4BmAAc4u5t3D2PMN3Cf9IVoEhtFBVVvWBUXl4Kyf6552C77cJXgH79wlTGSvaSJVKp4e/k7uPKXrj7eEATg0jGKSoKlZfKRhqbhRxepW++CeWbP/85LDf48sswZAisrXsGJXukkvAXm9llZtbezPLNbABQzyWdRRpW2U1WpVUMInavpnU/enSYFuHBB+Hii8OInD33jC1WkaSkkvCPB9oCo6NH22ibSMaoaebL/PxKNn75JRxzDBxxBGy0UViR6p//hDXXjC1OkSSlsgDK10B/M2vl7vVY5VMkPvPnV79/lRuq3OHhh+G880IH7aBBYRrj5s1jjVEkaTW28M1sdzObDcyOXnc1s1RmBReJXVERtG9fed2+zCqdtfPnw4EHwsknQ8eOoXxz6aVK9pITUinp3Az8hahu7+7vAH+MMyiRVBQVhUWlqhuG2aJF1FlbWgpDh4bJzV55JQy5fOUV2HbbtMUrkrSUplZw989s1bFuJfGEI5K6AQPC+uBVadIkmvWy4H3Yq0+YzfLPfw6TnbVvn7Y4RTJFKi38z8xsd8DNrIWZ/R2tYCUZoKa6fdPSFRR+9i/o2hVmzoT774cJE5TsJWelkvDPAM4CNgUWAN2i1yKJateu6n3dmMbUFrvAJZfAwQeH6RFOOaXqu7JEckC1Cd/MmgInunuhu2/o7hu4e0931zh8SdygQasvF/s7fuYaBjCZndhyzYUwalR4bLRRMkGKZJBqE767lwCHpSkWkVopLAzl+LIx9ns2eY3pdGMA1zJvzxNZc+5sOPLIZIMUySCpdNq+ZmZDgJHAj2Ub3X1qbFGJpKCoKHTcLpn3A/etfSmn/DAEy28Hwyaw5f77Jx2eSMZJJeHvHv28utw2B/Zp+HBEUlM2JPMPyyYwjL5svvQz7mx2NnmXX8ux+7dKOjyRjJTKnbZ7pyMQkdq4/uKvGbrsAk7hQeawLXvyCq+v3IP8gXBs76SjE8lMqdxpu6GZ3Wtm46PXncxM/6QkOU88wYQFnejJCK5hAN2ZxuvsAdQ8VFMkl6UyLPMBwpz4ZWu6fQCcF1dAIlX64ovQCXvUUSxusQkFFHM51/ALa/x6SHVDNUVyXSoJv427PwaUArj7SnSnraSTOzzwQJjCeOxY+Ne/mHHP23zYstsqh7VsWWGSNBFZRSqdtj+aWR6hoxYz2xX4LtaoRMp8+mnonZ04Ef7wBxg+HLbZhhMAbxpG6cyfH1r2gwalsKKVSA5LJeFfADwNbGlmrxHmwz8q1qhESkrCZGeXXhrujh06FM44I0yQEyksVIIXqY1URulMNbO9gG0Ii5i/7+7VLDUhUk9z5kCfPvD669CjB9x9t4rzIg2gyoRvZkdUsWtrM8PdtZC5NKwVK+D66+Hqq6FVK3joIejZU/PfiDSQ6lr4h0Q/NyDcfPVC9HpvYBKghC8NZ+pUOPXUsCDJMceE+eo33DDpqESySpWjdNy9l7v3InTWdnL3I939SKBz2qKT7PfTT2Hh8J13DmvMjh4NI0cq2YvEIJVO2/bu/kW5118CW8cUj+SSl18OtfoPP4TeveGGG2C99ZKOSiRrpZLwJ5nZBOARQmv/OODFWKOS7Pb992Ge+jvuCIuRTJwI++2XdFQiWS+VUTpnm9nh/LaO7TB3Hx1vWJK1xo+H00+HBQvgvPPgmmtgrbWSjkokJ1Sb8KMFUCa4+36AkrzU3ZIlcP758PDD4Y7Z11+HXXdNOiqRnJLKAijLzGzdNMUj2cYdHnsMOnaERx6Byy8PI3KU7EXSLpUa/s/Au2Y2kVUXQDk3tqgkOyxcCP36wVNPwY47wnPPQZcuSUclkrNSSfhjo4dIatzhvvvgb3+DX34JN1Odfz40S+V/NxGJSyr/AkcCvyeM0PnY3X+ONyRp1ObOhdNOgxdegD/+MUx2ttVWSUclIlRTwzezZmZ2PbAAeBAYAXxmZtebWfN0BSiNREkJ3HILbL89TJ4Md90FL76oZC+SQarrtL0BWB/Ywt13dPfuwJZAa+DGdAQnjcSsWbDHHqFss/feMHt2GHrZJJXlFkQkXar7F3kwcJq7Ly3b4O7fA2cCB8YdmDQCy5fDwIHQvTt89FFYWXzMGNhss6QjE5FKVJfw3d29ko0lRIuhVMfMNjezF81sjpnNMrP+9QlUMszkyVBQAFdcEZYdnDMHTjhBM1uKZLDqEv5sMzup4kYz6wm8l8K5VwJ/c/eOwK7AWWbWqW5hSsZYtgwuvDCMo1+yJAy5fOQRaNs26chEpAbVJfyzCEl6kpkNNrMbzewl4FxCWada7v6Fu0+Nni8F5gCbNkTQkpBJk6BrV7jxxjDp2ezZcOihaQ+jqAjatAlfJszC86KitIch0uhUOSzT3T8HdjGzfQhTIhsw3t2fr+1FzKw90B14q5J9fYG+AO20qlFm+u47uOiisPLUlluGIZd7751IKEVF0KtXWCulzJIlYSp90JKHItWxSsr0DXsBs1bAS8CgmlbJKigo8OLi4ljjkVoaOzaMuPniizAK5+qroWXLxMJp3x7mzat8X35+WPNcJJeY2RR3L0jl2FjHzUXj9Z8AirQkYiOzaFFoLh98cJij/o03QiknwWQPMH9+3faJSIwJ38wMuBeY4+43xXUdaWDuoRO2Uyd4/HG46iqYMiWsSJUBqqv6qSIoUr04W/h7ACcC+5jZ9Oih8fuZbMGC0Al7wgnQoUOY1fLKK6FFi0TDKt9JW1U5p0ULGDQovXGJNDaxzWbl7q8SOnol05WWhjlvLrww9IYOHgz9+0PTpklHVmknbUWtWoWZHNRhK1I9TV+Y6z76KEx2NmlSGHlzzz1hJE4aFRWFvy9LltTt/Xl5SvYiqdBkJ7mqpCS05Lt0CaWbe+6B559PJNn36lX3ZA/qrBVJlVr4uejdd6F37zA9wiGHwJ13wqap3xNXVAQDBoR6ulno502SOmtFUqMWfi755ZfQCbvDDmHA+qOPhqkRapns+/b9rfM06WSvzlqR1CnhZ6GionCDUpMmYXRLmzawi73FzDV2hKuvpqjkWNosmk2zwmOxJvbrMWZhUSqz8N6yqQuaNv1tX8+eYTqdTJCXFxbWUv1eJDUq6WSZshZ4WVL+acmPDORyzuMWPmdTDuK/jPODws6S8KN8/bwk2la+5V5auuq+JLVooSQvUldq4WeZAQN+S/Z78wIz6MIF3MxdnEFnZjGOg5INsB7UohepHyX8NCpfamnfPryuaVtZuaVsf79+le8rez5vHqzLtwzjNF5gX0ppwl5M4izuYCnrJPjpa9aiBYwYEb5dVPZYvFjJXqQ+Yp88rTayefK0iqUWgObNQ218+fI8Kwb6AAANMElEQVTqt9XGoTzFnZzJhnzJjfydq7iKn1mzfsGnQV4e3HqrErpIbWXM5GnZqrJWeU37y5dayqxYsXpir2xbKtryFY9wHE/xVxbThl14i4u5LvZk37Jl9a3yVB9qvYukgbtnzGPHHXf0TDdihHvLlqumq5Ytw/bq9tc/JVb1KPVCHvbFrO8/08IHMNCb88uv+/PywgPcmzat/Gdlx5j9do0mTSp/X37+b59bRJIBFHuKOVYt/EhNrfYylbXUly0L26vbH8e0NJvxGf/lYEZwIh+wNd2ZxiAuYwVhsrP8/NByXrw4pO6VKyv/WdkxpaW//UkpKan8fZ9+qla5SGOihM+qNxO5h599+1ae9Ku6jb9se1X7S0pWn0q+efPVJ6KsbFtFRilncCez6MyfmER/buEPvMocflsyuGVL3ZAkIqtSwqfmVnt5Vd3GX7a9qv35+TBsWPhpFn7ef38YZljdtry88Cjbf+XxH/DG7/bmTvoxtfku7Nl6Jrdbf9bLa7rKccOGqfUtIhWkWvtJx6MuNfwRI0It2azuNeXy9eryD7PKr1eXGn69a90rVrhfd537Gmu4r7uu+733upeW1vOkItLYUYsafuJJvvyjtgm/oZJrfn7lCT8/v+rrVvdHpiH+CK1i+nT3HXYIQf31r+6ff17PE4pItqhNwm/U4/CrWtC6totZVzZGvmXLDCiL/PILXHMN/OtfsP76MHQoHHlkqNuIiJBD4/Br6kBNVWHh6vX1xJP9G29A9+4h4Z9wAsyeDUcdpWQvInXWqBN+TR2otVFYGL4VlJYmPNzwhx/gvPNgjz3gxx9h/Hh48MHQcysiUg+NOuEPGrT6UMdGPRxx4kTYfvswx0C/fjBzJvTokXRUIpIlGnXCz8hSTF188w2ceirsv38YhP/yyzBkCKy9dtKRiUgWafTz4RcWNsIEX97o0aE1v2gRXHxxWJFqjTWSjkpEslCjT/iN1v/+B+ecA6NGQbduMHZsWHpQRCQmjbqk0yi5w0MPQadOMGYMXHstvP22kr2IxE4t/HSaNw9OPx0mTIDdd4d774Vtt006KhHJEWrhp0NpaeiE7dwZXn0Vbr8dXnlFyV5E0kot/Li9/z707g2vvRZG4dx9d7hFWEQkzdTCj8uKFfDPf0LXruEu2QcegGeeUbIXkcSohR+HadNCq37atDAdwu23w0YbJR2ViOQ4tfAb0s8/w6WXwk47wcKF8MQT8PjjSvYikhHUwm8or74KffqEmn2vXjB4MKy3XtJRiYj8Si38+lq6FM4+G/bcM7TwJ0wIS1Yp2YtIhlHCr48JE2C77eCOO+Dcc8NkZ/vvn3RUIiKVUsKvi6+/hpNPDjNZtmwZxtTfeiu0apV0ZCIiVVLCr61Ro6BjR/j3v8Mq59OmhbnrRUQynDptU/XFF3DWWWF2yx12COWcbt2SjkpEJGWxtvDNrIeZvW9mH5nZxXFeKzbucP/9YbKzcePC+rJvvaVkLyKNTmwJ38yaAkOBA4BOwPFm1imu68Xik09CJ+ypp4aVqGbMgIsugmb6YiQijU+cLfydgY/cfa67LwceBQ6L8XoNp6QEbrstjMB5800YOhQmTYKtt046MhGROosz4W8KfFbu9YJo2yrMrK+ZFZtZ8aJFi2IMJ0Vz5oQx9f37w157waxZYUWqJurfFpHGLc4sZpVs89U2uA9z9wJ3L2jbtm2M4dRgxYqw+nm3buFu2YcfDqtQtWuXXEwiIg0ozmL0AmDzcq83AxbGeL26mzIl1OlnzIBjjgmTnW2wQdJRiYg0qDhb+JOBrcxsCzNrARwHPB3j9Wrvp59CJ+zOO4dFxEePhpEjlexFJCvF1sJ395VmdjYwAWgK3Ofus+K6Xq29/HKY7OzDD8NUxjfeCK1bJx2ViEhsYh1f6O7jgHFxXqPWvv8eLr4Y7rwTttgCnnsO9t036ahERGKXW0NPxo0LQy3vugvOPx/efVfJXkRyRm7cQbR4cUjwI0aEO2Zffx123TXpqERE0iq7W/juoRO2Uyd49FG44gqYOlXJXkRyUva28BcuhDPPhKefhoKCUKvv0iXpqEREEpN9LXx3GD48tOqffRZuuAHeeEPJXkRyXna18OfOhdNOgxdeCNMiDB8Ov/990lGJiGSE7Gjhl5TAzTeHETiTJ4dROC+8oGQvIlJO42/hf/MNHHBAmKP+oINCst9ss6SjEhHJOI2/hd+6NWy5JRQVwZgxSvYiIlVo/C18s5DsRUSkWo2/hS8iIilRwhcRyRFK+CIiOUIJX0QkRyjhi4jkCCV8EZEcoYQvIpIjlPBFRHKEuXvSMfzKzBYB85KOowG0ARYnHUSa5Mpn1efMPtnyWfPdvW0qB2ZUws8WZlbs7gVJx5EOufJZ9TmzTy591jIq6YiI5AglfBGRHKGEH49hSQeQRrnyWfU5s08ufVZANXwRkZyhFr6ISI5QwhcRyRFK+DExsxvM7D0zm2Fmo82sddIxxcHMjjazWWZWamZZN8TNzHqY2ftm9pGZXZx0PHExs/vM7Cszm5l0LHEys83N7EUzmxP9f9s/6ZjSSQk/PhOB7dy9C/ABcEnC8cRlJnAE8HLSgTQ0M2sKDAUOADoBx5tZp2Sjis0DQI+kg0iDlcDf3L0jsCtwVhb/N12NEn5M3P1Zd18ZvXwTyMrFdt19jru/n3QcMdkZ+Mjd57r7cuBR4LCEY4qFu78MfJ10HHFz9y/cfWr0fCkwB9g02ajSRwk/PU4FxicdhNTapsBn5V4vIIeSQ7Yzs/ZAd+CtZCNJn8a/iHmCzOw5YKNKdg1w96eiYwYQvkY22pXWU/mcWcoq2aZxzFnAzFoBTwDnufv3SceTLkr49eDu+1W338xOBg4G9vVGfMNDTZ8ziy0ANi/3ejNgYUKxSAMxs+aEZF/k7v9JOp50UkknJmbWA7gIONTdlyUdj9TJZGArM9vCzFoAxwFPJxyT1IOZGXAvMMfdb0o6nnRTwo/PEGBtYKKZTTezu5IOKA5mdriZLQB2A8aa2YSkY2ooUaf72cAEQufeY+4+K9mo4mFmjwBvANuY2QIz6510TDHZAzgR2Cf6dzndzA5MOqh00dQKIiI5Qi18EZEcoYQvIpIjlPBFRHKEEr6ISI5QwhcRyRFK+NLgzCyv3JC3/5nZ59Hzb81sdppj6VZ+2J2ZHVrXWS/N7FMza9Nw0dXq2qeY2SblXg8vm/QrybikcVHClwbn7kvcvZu7dwPuAm6OnncDShv6emZW3R3j3YBfE767P+3u/2roGNLgFODXhO/ufdw9rX88pfFTwpd0a2pm90RzkT9rZmsCmNmWZvaMmU0xs1fMbNtoe76ZPR+tK/C8mbWLtj9gZjeZ2YvAdWa2VjSn+2Qzm2Zmh0V3x14NHBt9wzg2aikPic6xYbRWwTvRY/do+5NRHLPMrG9NH8jMepnZB2b2UvTZys7/gJkdVe64H6KfraLPMtXM3jWzw6Lt7aN52lf5/UTnKACKos+xpplNqmz9ATPraWZvR8fdbWZNo8cDZjYzut759fjvJ42YEr6k21bAUHfvDHwLHBltHwac4+47An8H7oi2DwEeitYVKAJuK3eurYH93P1vwADgBXffCdgbuAFoDlwBjIy+cYysEMttwEvu3hXYASi7i/bUKI4C4Fwzy6vqw5jZxsA/CHdw/pkwb35NfgYOd/cdolgHR7f8V/r7cfdRQDFQGH2On6qIpSNwLLBH9I2qBCgkfMvZ1N23c/ftgftTiFGykCZPk3T7xN2nR8+nAO2jmQt3Bx7/Le/xu+jnboQFVgAeBq4vd67H3b0ker4/cKiZ/T16vQbQroZY9gFOAojO8120/VwzOzx6vjkhCS+p4hy7AJPcfRGAmY0k/CGqjgHXmtkfCSWuTYENo32r/X5qOFd5+wI7ApOj3+OawFfAGKCDmd0OjAWercU5JYso4Uu6/VLueQkhKTUBvo1apTUpPxfIj+WeG6E1vMpiLGa2S22CM7M/AfsBu7n7MjObRPjjkWpM5a0k+hYdteBbRNsLgbbAju6+wsw+LXeNyn4/KYcPPOjuq62uZmZdgb8AZwHHENZokByjko4kLpqP/BMzOxpCcowSFMDrhFkqISTKV6s4zQTgnLLSiJl1j7YvJUxiV5nngTOj45ua2TrAusA3UbLflrAMXnXeAv4UjUxqDhxdbt+nhBY3hJWymkfP1wW+ipL93kB+Ddeo6XOU/zxHmdkG0WdaP+oDaQM0cfcngMsJ5SvJQUr4kikKgd5m9g6hll62lOC5QC8zm0GY5bCqRacHEhLqDAsLcQ+Mtr8IdCrrtK3wnv7A3mb2LqF80hl4BmgWXW8gYXnKKrn7F8BVhJkmnwOmltt9D7CXmb1NKP2UfSMpAgrMrDj63O9Vd43IA8BdZZ22VcQyG7gMeDaKfyKwMaFkNMnMpkfnydb1laUGmi1TpAGZ2SlAgbufnXQsIhWphS8ikiPUwhcRyRFq4YuI5AglfBGRHKGELyKSI5TwRURyhBK+iEiO+H9Woj+LYBv0owAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "res = stats.probplot(feature_3, plot=plt)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 4. 数据的基本统计描述-高级绘图"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 4.1 雷达图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "# 学生成绩雷达图\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib\n",
    "plt.rcParams['font.sans-serif'] = ['simhei']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([88.7, 85. , 90. , 95. , 70. , 96. , 88.7])"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 准备数据和参数\n",
    "labels=np.array(['语文','数学','英语','物理','化学','生物'])\n",
    "n_attr=len(labels)\n",
    "scores = np.array([88.7,85,90,95,70,96])\n",
    "angles = np.linspace(0, 2*np.pi, n_attr, endpoint=False)\n",
    "scores = np.concatenate((scores, [scores[0]])) # 闭合\n",
    "angles = np.concatenate((angles, [angles[0]])) # 闭合\n",
    "scores"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 绘图\n",
    "fig = plt.figure(facecolor=\"white\")\n",
    "plt.subplot(111,polar=True)\n",
    "plt.plot(angles, scores, 'bo-', color = 'g',linewidth = 2)\n",
    "plt.fill(angles, scores, facecolor = 'g',alpha = 0.2)\n",
    "plt.thetagrids(angles*180/np.pi,labels)\n",
    "plt.title('成绩雷达图', ha='center')\n",
    "plt.grid(True)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 4.2 词云"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 4.2.1. 安装包\n",
    "### 命令\n",
    "> pip install wordcloud  \n",
    "> pip install jieba"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 4.2.2. 绘制词云\n",
    "使用数据为2019年政府工作报告全文  \n",
    "文件：\"政府工作报告2019.txt\"  \n",
    "原文地址： \n",
    "> http://www.gov.cn/zhuanti/2019qglh/2019lhzfgzbg/index.htm"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "# 《政府工作报告2019》\n",
    "import jieba\n",
    "from wordcloud import WordCloud\n",
    "import PIL\n",
    "import os\n",
    "\n",
    "def chinese_jieba(txt):\n",
    "    wordlist_jieba = jieba.cut(txt) # 将文本分割，返回列表\n",
    "    txt_jieba = \" \".join(wordlist_jieba) # 将列表拼接为以空格为间断的字符串\n",
    "    return txt_jieba"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Building prefix dict from the default dictionary ...\n",
      "Dumping model to file cache C:\\Users\\Jun\\AppData\\Local\\Temp\\jieba.cache\n",
      "Loading model cost 0.554 seconds.\n",
      "Prefix dict has been built successfully.\n"
     ]
    }
   ],
   "source": [
    "stopwords = {'这些':0, '那些':0, '因为':0, '所以':0} \n",
    "alice_mask = np.array(PIL.Image.open('air.jpg'))\n",
    "with open('data\\政府工作报告2019.txt', encoding='utf8') as fp:\n",
    "    txt = fp.read()\n",
    "    cutted_text = chinese_jieba(txt)\n",
    "    \n",
    "    # print(txt)\n",
    "    wordcloud = WordCloud(font_path = r'C:\\Windows\\Fonts\\STKAITI.TTF', # 字体\n",
    "                          background_color = 'white', # 背景色\n",
    "                          max_words = 80, # 最大显示单词数\n",
    "                          max_font_size = 80, # 频率最大单词字体大小\n",
    "                          mask = alice_mask,\n",
    "                          stopwords = stopwords # 过滤停用词\n",
    "                         ).generate(cutted_text)\n",
    "    image = wordcloud.to_image()\n",
    "    image.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 5. 计算数值属性的三种距离"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "# 利用np.linalg.norm函数\n",
    "# numpy.linalg.norm(x, ord=None, axis=None, keepdims=False)\n",
    "import numpy as np\n",
    "from sklearn.datasets import load_iris\n",
    "import matplotlib.pyplot as plt\n",
    "iris_data = load_iris()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "sample_1 = iris_data.data[0,:]\n",
    "sample_2 = iris_data.data[1,:]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 5.1 欧氏距离"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "def euclidean_distance(vec_1, vec_2):\n",
    "    return np.linalg.norm(vec_1 - vec_2, ord=2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.5385164807134502"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "euclidean_dist = euclidean_distance(sample_1, sample_2)\n",
    "euclidean_dist"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 5.2 曼哈顿距离"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "def manhattan_distance(vec_1, vec_2):\n",
    "    return np.linalg.norm(vec_1 - vec_2, ord=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.6999999999999993"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "manhattan_dist = manhattan_distance(sample_1, sample_2)\n",
    "manhattan_dist"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 5.3 明可夫斯基距离"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "def minkowski_distance(vec_1, vec_2, ord = 3):\n",
    "    return np.linalg.norm(vec_1 - vec_2, ord=ord)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.6999999999999993"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "minkowski_dist_1 = minkowski_distance(sample_1, sample_2, ord = 1)\n",
    "minkowski_dist_1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.5385164807134502"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "minkowski_dist_2 = minkowski_distance(sample_1, sample_2, ord = 2)\n",
    "minkowski_dist_2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.5104468722001463"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "minkowski_dist_3 = minkowski_distance(sample_1, sample_2, ord = 3)\n",
    "minkowski_dist_3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.5031697308299091"
      ]
     },
     "execution_count": 54,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "minkowski_dist_4 = minkowski_distance(sample_1, sample_2, ord = 4)\n",
    "minkowski_dist_4"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
